Soru & Cevap

bir activity'de hashtable'ye yaz başka bir activity'de oku

01.10.2014 - 12:57

yaz.java'da aşakıdaki kodları çalıştırdığımızı varsayalım

[code]Hashtable<String, String> hashTable = new Hashtable<String, String>();
hashTable.put("key1", "value1");
hashTable.put("key2", "value2");[/code]


hashTable isimli değişkenini aşağıdaki kodların yer alacağı oku.java'da nasıl okuyabiliriz

[code]for (String key : hashTable.keySet()) {
    Log.i("CALISMA_NOTU", key + "=" + hashTable.get(key));
}[/code]

13 Görüntülenme

4 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user yesilce
yesilce
02.10.2014 - 10:54

Teşekkürler Ahmet,

önerilerin sonucunda aşağıdaki kodlar ile küçük bir örnek uygulama yazdım. İleride bu konuyu araştıranlara referans olması açısından aşağıdaki kodları paylaşıyorum...

ikinci_activity isminde yeni bir activity ve MainActivity'ye bir tane buton ekledim, MainActivity'nin create olayında hashMap'leri dolduruyorum, Butona tıklama olayında ise hashMap değerini ikinci_activity'ye gönderip ikinci_activity'yi açıyorum.

MainActivity kodları

[code]Log.i("CALISMA_NOTU", "MainActivity yüklendi");

final Intent intent = new Intent(MainActivity.this, ikinci_activity.class);
final HashMap<String, String> hmHashMap = new HashMap<String, String>();
hmHashMap.put("key1", "val1");
hmHashMap.put("key2", "val2");

Button btnActivityAc = (Button) findViewById(R.id.btnActivityAc);
btnActivityAc.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        ArrayList<HashMap<String, String>> alGonderilecekVeri = new ArrayList<HashMap<String, String>>();
        alGonderilecekVeri.add(hmHashMap);
        intent.putExtra("arraylist", alGonderilecekVeri);
        //startActivityForResult(intent, 500); //bu satır da çalışıyor.
        startActivity(intent);
    }
});[/code]

 

ikinci_activity kodları

[code]ArrayList<HashMap<String, String>> alGelenVeri = (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("arraylist");
Log.i("CALISMA_NOTU", alGelenVeri.get(0).get("key1").toString());
for (String key : alGelenVeri.get(0).keySet()) {
    Log.i("CALISMA_NOTU", key + "=" + alGelenVeri.get(0).get(key));
}[/code]

picture-1372-1408467635.jpg
ahmtbrk
01.10.2014 - 07:20

Activityler arası geçiş yaparken Intent sınıfından yararlanılır ve bu intent'in putExtra isimli methoduyla istediğin veriyi diğer activity'e taşıyabilirsin.

[code]


Intent i = new Intent(Yaz.this, Oku.class);

i.putExtra("gonderilecekverininadi", strName);
 

[/code]

bu sekilde gönderdiğini farz edelim karşı activity'nin onCreate blogunda da.

[code]

String gelenVeri = getIntent().getExtras().getString("gonderilecekverininadi");

[/code]

putExtra methodu ile farklı türde veriler gönderilebiliyor araştırırsan istediğini gönderirsin.

Profile picture for user yesilce
yesilce
01.10.2014 - 06:45

yaz.java'nın bir servis olduğunu ve her saniyede bir Hashtable'ye saat:dakika bilgisini yazdırdığını varsayalım.

oku.java proje içindeki herhangi bir activity olarak düşünebiliriz. Uygulama açıldığında herhangi bir butona tıklanarak oku.java activity'si açılabilir.

picture-1372-1408467635.jpg
ahmtbrk
01.10.2014 - 06:13

oku.java nereden çağırılıyor acaba biraz onu bilsek daha mantıklı bi çözüm sunabiliriz.

yaz.java da o değişkeni public static modifier'i ile tanımlayıp oku.javada 

yaz.hashTable şeklinde erişebilirsin.